In today's world, a user has the ability to access a wide range of applications or other types of resources. Some of these resources may be billable resources. A variety of different billing schemes may be used to charge the user for the use or access of the billable resource. For example, a user may be charged per use, by the functions accessed or by an amount of time the billable resource was used. In some cases, the billable resource may use a different billing scheme for different users. Additionally, users may be billed at different rates for the use of the billable resource.
A billable resource may access a billing system during the processing of a user communication to charge the user appropriately. The billing system may be accessed through APIs that may be invoked by the billable resource to generate billing records. The billable resource must generate the appropriate rating, charging, and billing API calls to the billing system. Thus, the API calls to the billing system and other billing logic are mixed within the logic of the billable resource.
There are also applications in the prior art that implement policies. Policies are used for a variety of purposes. For instances, polices may be used to authorize or authenticate a user, enforce service level agreements, and allocate resources. One example of a policy management system is the IETF policy management architecture. The IETF architecture includes a policy management service for administering policies and policy enforcement points that enforce policies based on the policy rules. Other exemplary environments that use policies include web service activities (e.g., choreography of events, security), Web-Services-Policy (WS-Policy), Object Management Architecture (OMA) activities, and Third Generation Partnership Project (3GPP). In the prior art, policies are implemented as rules having a condition that must be satisfied at the time the condition is evaluated for an action to be executed.